//      preferences.h
//
//      Copyright 2011 David Vachulka <david@konstrukce-cad.com>
//
//      This program is free software; you can redistribute it and/or modify
//      it under the terms of the GNU General Public License as published by
//      the Free Software Foundation; either version 3 of the License, or
//      (at your option) any later version.
//
//      This program is distributed in the hope that it will be useful,
//      but WITHOUT ANY WARRANTY; without even the implied warranty of
//      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//      GNU General Public License for more details.
//
//      You should have received a copy of the GNU General Public License
//      along with this program; if not, write to the Free Software
//      Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
//      MA 02110-1301, USA.


#ifndef PREFERENCES_H
#define PREFERENCES_H

class Preferences
{
    public:
        Preferences();
        Preferences(const Preferences &p);

        //Save to FXSettings
        void save();
        //Load from FXSettings
        void load();

        //General settings pane in Configdialog
        FXString m_themePath;
        FXString m_themesList;
        FXbool m_oneInstance;
        FXbool m_reconnect;
        FXint m_numberAttempt;
        FXint m_delayAttempt;
        FXint m_maxAway;
        FXString m_nickCompletionChar;
        FXbool m_useTray;
        FXbool m_closeToTray;
        FXbool m_useSpell;
        FXbool m_ownServerWindow;
        FXbool m_logging;
        FXString m_logPath;
        FXbool m_autoload;
        FXString m_autoloadPath;
        FXint m_tabPosition;

        //Look settings pane in Configdialog
        ColorTheme m_appTheme;
        FXColor m_trayColor;
        FXColor m_unreadColor;
        FXColor m_highlightColor;
        FXString m_font;

        //Irc Text settings pane in Configdialog
        IrcColor m_colors;
        FXString m_ircFont;
        FXbool m_sameCmd;
        FXbool m_sameList;
        FXbool m_coloredNick;
        FXbool m_stripColors;
        FXbool m_loadLog;
        FXint m_loadLines;

        //Ignore settings pane in Configdialog
        FXString m_ignoreCommandsList;
        dxUserInfoArray m_ignoreUsersList;

        //DCC settings pane in Configdialog
        FXString m_dccPath;
        FXString m_dccIP;
        FXint m_dccPortD;
        FXint m_dccPortH;
        FXint m_dccTimeout;
        FXbool m_autoDccChat;
        FXbool m_autoDccFile;

        //Notification settings pane in Configdialog
        dxUserInfoArray m_friendsList;
        FXbool m_sounds;
        FXbool m_soundConnect;
        FXString m_pathConnect;
        FXbool m_soundDisconnect;
        FXString m_pathDisconnect;
        FXbool m_soundMessage;
        FXString m_pathMessage;
        FXbool m_notify;
        FXint m_notifyPosition;
        FXbool m_notifyConnect;
        FXbool m_notifyDisconnect;
        FXbool m_notifyMessage;

        //Smileys settings pane in Configdialog
        FXbool m_useSmileys;
        dxStringMap m_smileysMap;

        //Other settings value
        dxServerInfoArray m_serverList;
        FXbool m_usersShown;
        FXbool m_statusShown;
        FXint m_x;
        FXint m_y;
        FXint m_w;
        FXint m_h;
        FXbool m_maximized;
        FXbool m_showSpellCombo;
        dxStringMap m_langs; //map between channel and spelllang
};

#endif /* PREFERENCES_H */
